# Snow CLI User Documentation - Startup Parameters Guide

Welcome to Snow CLI! Agentic coding in your terminal.

## Startup Parameters Guide

### Basic Commands

#### 1. Default Launch

```bash
snow
```

Launch Snow CLI interactive interface and display the welcome screen.

#### 2. Show Version

```bash
snow --version
# or
snow -v
```

Display the currently installed Snow CLI version number.

#### 3. Show Help

```bash
snow --help
# or
snow -h
```

Display all available command-line parameters and usage instructions.

#### 4. Update to Latest Version

```bash
snow --update
```

Automatically update Snow CLI to the latest version.

### Quick Start Modes

#### 1. Skip Welcome and Resume Session

```bash
snow -c
```

Skip the welcome screen and automatically resume the most recent conversation session. Ideal for quickly continuing previous work.

#### 2. YOLO Mode (Auto-approve All Tool Calls)

```bash
snow --yolo
```

Skip the welcome screen, start a blank conversation, and enable YOLO mode. In this mode, all tool calls are automatically approved and executed without manual confirmation.

**Warning:** YOLO mode will automatically execute all commands. Use with caution!

#### 3. YOLO + Plan Mode (YOLO+Plan)

```bash
snow --yolo-p
```

Skip the welcome screen, start a blank conversation, enable YOLO mode, and force-enable “Plan Mode”. This is useful when you want auto-execution while still requiring the model to produce a plan before acting.

**Warning:** This mode also auto-executes all commands. Use with caution!

#### 4. Combined Mode: Resume Session + YOLO

```bash
snow --c-yolo
```

Skip the welcome screen, resume the most recent conversation session, and enable YOLO mode. Combines the convenience of session resumption and auto-approval.

### Headless Mode

#### 1. Quick Question Mode

```bash
snow --ask "your question"
```

Send a single prompt in headless mode, AI responds and exits automatically. Ideal for quick answers or script integration.

**Example:**

```bash
snow --ask "How to use Promise in JavaScript?"
```

#### 2. Continue Conversation

```bash
snow --ask "follow-up question" <sessionId>
```

Continue conversation in a specified session. sessionId is the identifier from a previous session.

**Example:**

```bash
snow --ask "Can you explain that in more detail?" abc123def
```

### Async Task Management

#### 1. Create Background Task

```bash
snow --task "task description"
```

Create a background AI task that executes in the background without blocking the current terminal.

**Example:**

```bash
snow --task "Refactor error handling logic in auth.ts file"
```

After execution, it displays:

- Task ID
- Task title
- Instructions to view task status

#### 2. View Task List

```bash
snow --task-list
```

Open task manager interface to view and manage all background tasks, including:

- View task status (running, completed, failed)
- Approve sensitive commands
- Convert tasks to sessions
- Delete tasks

### Developer Mode

#### Enable Developer Mode

```bash
snow --dev
```

Enable developer mode with persistent userId for testing. Use during development and debugging to maintain consistent user identification.

On startup, it displays:

```
Developer mode enabled
Using persistent userId: <your-user-id>
Stored in: ~/.snow/dev-user-id
```

## Parameter Combination Examples

### Common Combinations

1. **Quick resume previous work:**

   ```bash
   snow -c
   ```

2. **Automated task execution:**

   ```bash
   snow --yolo
   ```

3. **Automated execution (force plan mode):**

   ```bash
   snow --yolo-p
   ```

4. **Quick Q&A and exit:**

   ```bash
   snow --ask "How to use TypeScript generics?"
   ```

5. **Execute complex tasks in background:**

   ```bash
   snow --task "Analyze and optimize performance bottlenecks across the entire project"
   ```

6. **Continue previous conversation with auto-execution:**

   ```bash
   snow --c-yolo
   ```

7. **Quick version and help check:** Use `--version` or `--help` for quick information retrieval. These commands execute rapidly without loading animations.

8. **Script integration:** Use the `--ask` parameter to integrate Snow CLI into automation scripts.

9. **Background tasks:** For time-consuming tasks, use `--task` to create background tasks and continue using the terminal for other work.

10. **Session management:** Use the sessionId parameter with `--ask` for multi-turn conversations, suitable for context-dependent questions.

11. **Safe YOLO usage:** While YOLO mode is convenient, it auto-executes all commands. Recommended only in trusted environments and for well-defined tasks.

## Important Notes

1. **YOLO mode risks:** `--yolo` and `--c-yolo` automatically approve all tool calls, including file modifications and command executions. Make sure you understand the operations to be performed.

2. **Background tasks:** Tasks created with `--task` run in a new process. Even if you close the terminal, the task continues executing.

3. **Developer mode:** `--dev` mode uses persistent userId, intended for development and testing environments only.

4. **Headless mode limitations:** In `--ask` mode, the program exits immediately after AI response, and does not support interactive operations.

## Related Documentation

- [Headless Mode Detailed Guide](./12.Headless%20Mode.md)
- [Async Task Management](./15.Async%20Task%20Management.md)
- [Keyboard Shortcuts Guide](./13.Keyboard%20Shortcuts%20Guide.md)
